package com.cy.controller;

import com.cy.dao.DoorMapper;
import com.cy.dao.OrderMapper;
import com.cy.pojo.Door;
import com.cy.pojo.Order;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
public class OrderController {

    @Autowired
    DoorMapper doorMapper; //获取DoorMapper接口的子类实例
    @Autowired
    OrderMapper orderMapper; //获取OrderMapper接口的子类实例

    /**
     * 1.查询所有订单信息
     */
    @RequestMapping("/orderList")
    public String orderList(Model model){
        //查询所有订单信息, 将查询到的订单集合存入Model中
        List<Order> list = orderMapper.findAll();
        for(Order o : list){
            System.out.println(o);
        }
        model.addAttribute( "oList", list );

        //查询所有门店信息, 将所有门店信息集合存入Model
        List<Door> dList = doorMapper.findAll();
        for (Door d : dList){
            System.out.println(d);
        }
        model.addAttribute( "dList", dList );

        //跳转到订单列表页面,显示所有订单信息
        return "order_list";
    }

    /** 2、根据id删除订单信息 */
    @RequestMapping("/orderDelete")
    public String orderDelete(Integer id){
        orderMapper.deleteById(id);
        //删除玩后跳转到查询所有订单的方法，显示最新的订单信息
        return "forward:/orderList";
    }
    /** 3、负责查询所有门店信息，并带到新增订单页面 */
    @RequestMapping("/toOrderAdd")
    public String toOrderAdd( Model model ) {
        //查询所有门店信息, 将所有门店信息集合存入Model
        List<Door> dList = doorMapper.findAll();
        model.addAttribute( "dList", dList );
        for (Door d : dList){
            System.out.println(d);
        }
        //跳转到订单新增页面(order_add.jsp)
        return "order_add";
    }
    /** 3、新增订单信息 */
    @RequestMapping("/orderAdd")
    public String orderAdd( Order order ) {
        //调用orderMapper的add方法, 新增订单信息
        orderMapper.add( order );
        //添加完后跳转到查询所有订单的方法, 显示最新的订单信息
        return "forward:/orderList";
    }
    /** 4、根据id查询订单信息 */
    @RequestMapping("/orderInfo")
    public String orderInfo( Integer id, Model model ) {
        //根据id查询订单信息,将订单信息存入Model中
        Order order = orderMapper.findById( id );
        model.addAttribute( "order", order );

        //查询所有门店信息, 将所有门店信息集合存入Model
        List<Door> dList = doorMapper.findAll();
        model.addAttribute( "dList", dList );
        for (Door d : dList){
            System.out.println(d);
        }
        //将订单信息带到订单修改页面, 进行数据的回显
        return "order_update";
    }
    /** 5、根据id修改订单信息 */
    @RequestMapping("/orderUpdate")
    public String orderUpdate( Order order ) { //order是用于接收修改后的订单信息
        //调用OrderMapper的updateById方法, 根据id修改订单信息
        orderMapper.updateById( order );
        //添加完后跳转到查询所有订单的方法, 显示最新的订单信息
        return "forward:/orderList";
    }

}
